package cn.stylefeng.guns.modular.web.entity;

import cn.hutool.core.util.IdUtil;
import cn.stylefeng.guns.base.auth.context.LoginContextHolder;
import cn.stylefeng.guns.base.auth.model.LoginUser;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 描述：存钱打卡计划表
 * 作者：chenhuiyan
 * 时间：2020-04-18
 */
@Data
@TableName("pl_sm_plan")
public class SmPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @TableId(value = "id")
    private String id;

    /**
     * 用户编号
     */
    @TableField(value = "user_id")
    private String userId;

    /**
     * 计划名称
     */
    private String name;

    /**
     * 计划类型（0一月，1一季，2半年，3一年）
     */
    private Integer type;

    /**
     * 规则名称
     */
    private String rule;

    /**
     * 图型类型（0心型，1蝴蝶型，2方形）
     */
    @TableField(value = "pattern_type")
    private Integer patternType;

    /**
     * 打卡累计金额
     */
    private BigDecimal money;

    /**
     * 总天数的总打卡金额
     */
    private BigDecimal amount;

    /**
     * 最大存钱数
     */
    @TableField(value = "max_money")
    private BigDecimal maxMoney;

    /**
     * 连续打卡天数
     */
    @TableField(value = "day_num")
    private Integer dayNum;

    /**
     * 状态（0进行中，1已放弃）
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 创建时间
     */
    @TableField(value = "create_date")
    private Date createDate;

    /**
     * 结束时间
     */
    @TableField(value = "end_date")
    private Date endDate;

    /**
     * 添加数据时调用该方法生成
     */
    public void preInsert(){
        this.setId(IdUtil.simpleUUID());
        this.setCreateDate(new Date());
    }

}
